Answer:

Inspect the documentation. What is the type of the argument expected by sqrt()?

double

What is the type of value returned by sqrt()?

double

Is sqrt() a static method?

Yes

NaN

If you look further at the documentation for sqrt() you find some details:

Returns the correctly rounded positive square root of a double value. If the argument is NaN or less than zero, the result is NaN.

NaN stands for "Not a Number". This is a 64-bit pattern that is returned by sqrt() when its argument is not correct. Here is an example run of the program:

C:\chap11>java SquareRoot
Enter a double: -3
square root   : NaN

Here the method returned the 64-bit pattern NaN. The println() method writes the characters "NaN" when it sees this pattern. (The actual bit pattern is not character data.)

In a highly secure, industrial-strength programming language like Java, the behavior of a function must be described for all possible input, both in range and out of range. The documentation describes all of these cases.

QUESTION 14:

What do you expect is the output of the following program fragment:

int x = 9;
System.out.println( Math.sqrt( x ) );